﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Controls;

namespace SHomeWorkshop.LunarSF.StudentInfosManager.ValidationRules
{
    /// <summary>
    /// 监护人工作单位验证类。
    /// </summary>
    public class GuardianCompanyRule : LValidationRule
    {
        public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
        {
            string text = Format(value.ToString());
            if (string.IsNullOrWhiteSpace(text) || text.Length <= 1)
                return new ValidationResult(false, "“监护人工作单位”只能由【2，16】个汉字组成，不能包括特殊符号。"); //验证失败
            
            if (AllIsHanChars(text))
                return new ValidationResult(true, null); //验证OK
            else
                return new ValidationResult(false, "“监护人工作单位”只能由【2，16】个汉字组成，不能包括特殊符号。"); //验证失败
        }

        public static string Format(string origin)
        {
            if (string.IsNullOrWhiteSpace(origin)) return "";
            return origin.Replace(" ", "").Replace("　", "").Replace("\t", "");
        }

        /// <summary>
        /// 判断是否全是汉字。★空字符串返回“false”。
        /// </summary>
        /// <param name="text">源文本。</param>
        /// <returns>如果都在[0x4e00，0x9fbb]范围内，返回真。</returns>
        public static bool AllIsHanChars(string text)
        {
            if (string.IsNullOrWhiteSpace(text)) return false;

            for (int i = 0; i < text.Length; i++)
            {
                if (text[i] >= 0x4e00 && text[i] <= 0x9fbb) continue;
                else return false;
            }

            return true;
        }
    }
}
